package com.spc.car.data.domain.message.po;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.spc.car.common.utils.StringUtils;
import com.spc.car.data.entity.sys.SysMessage;
import io.swagger.annotations.ApiParam;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.Objects;


@Data
public class SysMessagePagePO implements Serializable {


    /**
     * 当前页，默认1
     */
    @ApiParam(value = "当前页，默认1",required = false,defaultValue = "1")
    @Min(value = 1, message = "当前页不能小于{value}")
    private Integer page = 1;

    /**
     * 每页显示条数，默认 10
     */
    @ApiParam(value = "每页大小，默认10",required = false, defaultValue = "10")
    @Min(value = 10, message = "每页条数不能小于{value}")
    @Max(value = 30, message = "每页条数不能大于{value}")
    private Integer pageSize;

    private String title;

    /**
     * 消息类型: F 流程消息 P 项目消息 D 部门消息 S 系统消息
     */
    @Pattern(regexp = "[FPDS]",message = "消息类型为： F 流程消息 P 项目消息 D 部门消息 S 系统消息")
    private String type;

    /**
     * 标记已读 (0 : 未读  ， 1 : 已读)
     */
    private Integer markRead;

    public QueryWrapper toWrapper() {
        QueryWrapper<SysMessage> wrapper = new QueryWrapper<>();
        wrapper.like(StringUtils.isNotBlank(this.title), "title", this.title);
        wrapper.eq(!Objects.isNull(this.markRead),"mark_read" , this.markRead);
        wrapper.eq(StringUtils.isNotBlank(this.type),"type" , this.type);

        return wrapper;
    }

}
